1. Field of the Invention
The invention relates to the field of communication. More specifically, the invention relates to communication networks.
2. Background of the Invention
Typically when a network element receives a packet to be multicast, the network element stores the packet in a central memory location and submits copies of the stored packet for transmission to multiple recipients.
FIG. 1 (Prior Art) is a diagram of a forwarding engine card and an input/output (I/O) card. In FIG. 1, a forwarding engine (FE) card 121 is coupled with a shared bus 111. An I/O card 113 is also coupled with the shared bus 111. The FE card 121 includes a packet processing module (PPM) 105, a memory 107, and an FE controller 109.
The PPM 105 receives a packet from an I/O card and stores the packet in memory 107. The PPM determines where the stored packets is to be transmitted and provides the location of the stored jacket to the appropriate I/O card. The PPM 105 provides the target location to an I/O card through the FE controller 109. The FE controller 109 places data on the shared bus 111 to be carried to the appropriate I/O card.
The I/O card 113 includes an I/O controller 101 and a framer 103. The I/O controller 101 receives data from the shared bus 111, including packets and a target location(s) for packets, and passes this data to the framer 103. The framer 103 processes packets and transmits processed packets.
The framer 103 issues prefetch requests for packets through the I/O controller 101. In multicast scenarios, the FE card 121 provides a data to the I/O card faster than expected because the same target location is being requested multiple times in sequence. The FE controller 109 provides the data is just pulled from the memory 107 to service the previous prefetch request.
If a sequence of prefetch requests include multiple prefetch requests for a multicast packet and a prefetch request for a different packet, then the data integrity may be compromised. For example, assume a sequence of four prefetch requests are issued. The first, second and fourth prefetch requests are for a first packet to be multicast. The third prefetch request is for a second packet. The FE controller 109 can provide the first packet in response to the fourth prefetch request before the second packet is provided for the third prefetch request, since the FE controller 109 has already fetched the first packet for the first and second prefetch requests. Hence, the I/O card 113 will receive the first packet for the third prefetch request, which is the wrong packet for the third prefetch request.